iT邦幫忙

0

WordPress 裝好防機器人外掛,怎麼知道它真的有在記錄?用 WebDecoy 實測一次

  • 分享至 

  • xImage
  •  

裝好外掛後,設定頁顯示「已啟用」,不代表我們已經驗證了偵測流程。這篇教學會在自己的 WordPress 測試站啟用 WebDecoy 的觀察模式,送出一個可辨識的測試請求,再到後台確認紀錄。

我是 WebDecoy 的開發者 Chris Portscheller。本文使用的本機功能免費、開放原始碼,不需要 WebDecoy 帳號或 API 金鑰;雲端連線是選用功能。

先說明這次測了什麼

測試環境是獨立的 Docker WordPress 7.1、PHP 8.3.33,以及 WebDecoy 2.10.1,僅對本機開放 localhost:18080。外掛程式碼來自 GitHub 提交 d386344d65a7487d153125c20705ee594da83a5f。WordPress.org 發行版可能與 GitHub 更新時間不同,請記下自己安裝的版本。

目標是驗證「請求 → 偵測 → 紀錄」,不是測量攔截率、誤判率或效能。請先在自己管理的測試站操作。

1. 安裝 WebDecoy

在 WordPress 後台開啟「外掛 → 安裝外掛」,搜尋 WebDecoy,核對外掛頁面後安裝並啟用。官方目錄在 WordPress.org。

如果平常使用 WP-CLI,也可以在該 WordPress 站台目錄執行:

wp plugin install webdecoy --activate

本次實測是把上述 GitHub 版本放入外掛目錄後啟用,並非重新下載 WordPress.org 套件。

2. 先開啟 Monitor mode

前往 WebDecoy → Settings → Blocking,勾選 Monitor mode,儲存設定,再確認勾選狀態仍在。英文說明是「Watch only — detect and log everything, block nothing」。

Blocking 頁面的 Monitor mode 設定

觀察模式會偵測及記錄,但不套用 WebDecoy 的封鎖動作。其他 WAF、安全外掛或主機規則仍可能攔截請求。

WP-CLI 的等效操作與檢查方式:

wp webdecoy config set mode monitor
wp webdecoy config get mode
wp webdecoy status

確認模式為 monitor,並記下 detections_total 和 active_blocks。如果 wp-config.php 使用 WEBDECOY_DEFAULT_MODE 固定模式,CLI 可能拒絕修改,請以實際輸出為準。

3. 複製自己的 canary 連結

回到 WordPress「控制台」,找到 WebDecoy - Threat Overview 小工具中的 open your canary 連結。複製連結網址。

Canary 是用來觀察存取行為的誘餌路徑。這次我們會刻意存取它,讓偵測流程留下可核對的紀錄。每個站台的路徑可能不同,不要複製別人的路徑,也不需要建立真的機密檔案。

將下方的範例網址換成剛剛複製的完整網址,再執行:

CANARY_URL='https://your-staging.example/__wd/REPLACE_WITH_YOUR_TOKEN'
curl -sS -A 'WebDecoy-Tutorial/1.0' \
  -o /dev/null -w 'HTTP %{http_code}\n' \
  "$CANARY_URL"

這個 curl 請求沒有 WordPress 管理員登入 Cookie;自訂的 User-Agent 方便稍後辨識。不要直接在已登入管理員的分頁測試,因為登入身分可能影響處理方式。

4. 到 Detections 核對紀錄

開啟 WebDecoy → Detections,依時間找到剛才的紀錄,核對 User-Agent 是否為 WebDecoy-Tutorial/1.0。

測試請求出現在 Detections,且頁面顯示 Monitor mode

本次乾淨測試站的結果如下:

項目 測試前 測試後
模式 monitor monitor
偵測總數 0 1
有效封鎖數 0 0
雲端 未連線 未連線

HTTP 回應是 301。它不是「遭到封鎖」的證明;判讀時要把 HTTP 回應、偵測紀錄和封鎖狀態分開看。你自己的環境可能回傳不同狀態碼。

畫面中的 172.21.0.1 是本機 Docker 網路位址,不是真實訪客 IP。紀錄的 HIGH 分級是規則的判定結果,也不等於這個請求一定有惡意——這次就是我們自己送的。

5. 沒看到紀錄時,先查這幾件事

  • 確認外掛已啟用、網址取自同一個站台,而且 canary 功能有開啟。
  • 確認測試請求真的到達 WordPress。CDN 快取、反向代理、WAF 或測試站的 HTTP 登入保護都可能先處理它。
  • 清除 Detections 頁面的篩選條件,檢查時間範圍與時區。
  • 若所有請求都顯示代理伺服器 IP,先確認代理與訪客 IP 設定,再評估是否啟用封鎖。

不要把「沒有紀錄」直接解讀為「沒有機器人」。這個測試只確認一條偵測路徑,並沒有覆蓋所有請求或所有功能。

完成後可以維持觀察模式,試用站台的重要流程,再依紀錄決定是否調整規則。這次教學不會自動切換成封鎖模式。

外掛:WordPress.org · 原始碼與問題回報:GitHub


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言